package com.xbongbong.pro.statistics.pojo.dto;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.helper.PageHelper;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.pro.bi.commons.pojo.AggFieldPojo;
import com.xbongbong.pro.domain.entity.ChartEntity;
import com.xbongbong.pro.statistic.result.pojo.ChartResultPojo;
import com.xbongbong.pro.statistic.result.pojo.FieldAttrPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;
import java.util.Map;

/**
 * 结果解析
 * @author xinpeng.jiang
 * @date 2021/11/1 11:24
 * @version 1.0
 * @since V1.0
 */
@Getter
@Setter
@ToString
public class ChartAnalysisDTO extends BaseDTO {

    private static final long serialVersionUID = -6030852395785719545L;

    ChartEntity chartEntity;
    
    ChartResultPojo chartResultPojo;
    /**
     * sql直接查回的结果值
     */
    JSONArray resultArray;
    /**
     * 统计表总计的结果值
     */
    JSONArray sumJsonArray;
    /**
     * 统计表右侧总计的结果值
     */
    JSONArray sumRightJsonArray;

    /**
     * 统计表 总计的总计的结果值
     */
    JSONArray totalOfTotalJsonArray;
    /**
     * 统计表小计的结果值
     */
    JSONArray subTotalJsonArray;
    /**
     * 分页信息
     */
    PageHelper pageHelper;
    
    Boolean intersectionFlag;

    /**
     * 表头
     */
    JSONArray tableHead;

    /**
     * 表头字段对应需要解析的字段
     */
    Map<JSONObject, FieldAttrPojo> parseAttrMap;

    /**
     * 统计值字段与ck结果的对应关系
     * 例如：ck中sum_1，对应一个AggFieldPojo，里面有原始值
     */
    Map<String, AggFieldPojo> aggFieldMap;

    /**
     * 单表or多表
     */
    private Boolean singleFlag;

    /**
     * 是否翻页 0不翻页 1翻页
     */
    private Integer pageTurn;
    /**
     * 汇总字段实体映射
     */
    private Map<String, FieldAttrPojo> summaryAttrMap;
    /**
     * 副指标key
     */
    private List<String> secondTargetKey;
}
